Ohne Wiederholungs- und Entscheidungsanweisungen wären viele Aufgaben nur umständlich oder überhaupt nicht programmierbar:
Die Wiederholungsaufgabe liesse sich - allerdings umständlich - mit den Operatoren = und + programmieren (Summe = 1 + 2 + ... + 1000). Die Wiederholungsanweisung Do While ... Loop erleichtert die Aufgabe (engl. loop heisst Schleife):
Zahl = 1 ‘ 1 (' beginnt einen Kommentar bis an das Ende der Zeile) Summe = 0 ‘ 2 Do While Zahl <= 1000 ‘ 3 Summe = Summe + Zahl ‘ 4 Zahl = Zahl + 1 ‘ 5 Loop ‘ 6
Die Zeilen 1 und 2 weisen dem Wiederholungszähler Zahl und der Aggregationsvariablen Summe die Anfangswerte 1 und 0 zu. Solange Zahl kleiner oder gleich 1000 ist, wird die Schleife betreten (Zeile 3). In der Schleife wird jedesmal der laufende Wert von Zahl zur Summe addiert und dann Zahl um 1 erhöht (Zeilen 4 und 5). Gilt die Bedingung nach dem Schlüsselwort While nicht mehr, so springt das Programm nach dem Schlüsselwort Loop nicht mehr zur Zeile 3 zurück (Zeile 6), sondern fährt mit der nächsten Zeile fort.
Das Beispiel lässt sich verallgemeinern:
<Initialisierung>
Do While <Ausführungsbedingung>
<Schleifenkörper>
Loop
Nach der Initialisierung der Variablen, die in der Schleife geändert werden, wiederholt das Programm die Anweisungen in der Schleife so lange, bis die Ausführungsbedingung nicht mehr zutrifft. Fehler schleichen sich vor allem an den folgenden Positionen einer Wiederholungsanweisung ein:
a) Initialisierung
Zahl = 1 Summe = 1 ‘ Initialisierungsfehler! Do While Zahl <= 1000 Summe = Summe + Zahl Zahl = Zahl + 1 Loop
b) Schleifenbedingung
Zahl = 1 Summe = 0 Do While Zahl < 1000 ‘ Bedingungsfehler! Summe = Summe + Zahl Zahl = Zahl + 1 Loop
c) Schleifenkörper
Zahl = 1 Summe = 0 Do While Zahl <= 1000 Zahl = Zahl + 1 ‘ Zählfehler! (Reihenfolge) Summe = Summe + Zahl ‘ Aggregationsfehler! (Reihenfolge) Loop
Jeder dieser Fehler lässt sich durch eine Korrektur der Initialisierungsphase, der Schleifenbedingung oder der Reihenfolge der Schleifenanweisungen beheben.
Korrigieren Sie die obigen Fehler, indem Sie die
fehlerhafte Zeile belassen, aber den übrigen Code ändern.
Wiederholungs- und Entscheidungsanweisung
Entscheidungsanweisungen